<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Aria: ArDPPTUCommands Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Aria
   &#160;<span id="projectnumber">2.9.4</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classArDPPTUCommands.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="classArDPPTUCommands-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ArDPPTUCommands Class Reference<div class="ingroups"><a class="el" href="group__OptionalClasses.html">Optional Classes</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Interface to Directed Perception pan/tilt unit, implementing and extending the <a class="el" href="classArPTZ.html" title="Base class which handles the PTZ cameras. ">ArPTZ</a> interface.  
 <a href="classArDPPTUCommands.html#details">More...</a></p>

<p><code>#include &lt;ArDPPTU.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:afe6b1d17859dd18970f1c6625ae1c085"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
&#160;&#160;<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085a54fe2ba13522f85352843b9d4b387493">DELIM</a> = 0x20, 
<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085adf1784c90754dfb7b6b538e74890a1c0">INIT</a> = 0x40, 
<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085a70ae66fa8815313c850289d44ad6ecc8">ACCEL</a> = 0x61, 
<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085a8b2f48b743358b18c68502b3df5d264e">BASE</a> = 0x62, 
<br />
&#160;&#160;<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085a6ed972e423ea5fe8a8bd60b60274d0e5">CONTROL</a> = 0x63, 
<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085a1f17d3c89943d6a0a6d019b35788bb05">DISABLE</a> = 0x64, 
<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085a9f8de561f3b0b3c9b726b0a8c9a00a6e">ENABLE</a> = 0x65, 
<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085a3ba964eb98614ecb9fed7952bd66aa10">FACTORY</a> = 0x66, 
<br />
&#160;&#160;<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085a8cc7b9150e04e27f03f75928a6461eab">HALT</a> = 0x68, 
<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085af6acc42f6a744863a123acec5b214790">IMMED</a> = 0x69, 
<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085a754fcda791f0c069695b59a9bb80b1f3">LIMIT</a> = 0x6C, 
<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085a4feacc23a844fd6b28ecd83d2aaeb1d4">MONITOR</a> = 0x6D, 
<br />
&#160;&#160;<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085abf251f4c5c7e881ee016426affaa9f5c">OFFSET</a> = 0x6F, 
<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085ab607b12f038c037a54e9865b8b6256cb">PAN</a> = 0x70, 
<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085ad0f8d44d3903c215be8fc5499c3aaf6b">RESET</a> = 0x72, 
<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085a53d6f17cbaad36ab8aabccb8965a5d7e">SPEED</a> = 0x73, 
<br />
&#160;&#160;<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085a2ab32d5f0bbc756421dab3e5b521fe88">TILT</a> = 0x74, 
<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085ac7f5a617cfc924e11308b7fd60c937f8">UPPER</a> = 0x75, 
<a class="el" href="classArDPPTUCommands.html#afe6b1d17859dd18970f1c6625ae1c085a1969b41b4d5d804fd1daf93835bf5575">VELOCITY</a> = 0x76
<br />
 }</td></tr>
<tr class="separator:afe6b1d17859dd18970f1c6625ae1c085"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Interface to Directed Perception pan/tilt unit, implementing and extending the <a class="el" href="classArPTZ.html" title="Base class which handles the PTZ cameras. ">ArPTZ</a> interface. </p>
<p>Functions such as pan(), tilt(), etc. send requests to the PTU. By default, a new motion command will interrupt the previous command, but the awaitExec() function sends a command instructing the PTU to wait for the previous motion to finish.</p>
<p>Incoming data sent from the PTU is read every <a class="el" href="classArRobot.html" title="Central class for communicating with and operating the robot. ">ArRobot</a> task cycle (10hz). If this data contains a message giving the current measured position of the pan and tilt axes, then this is stored as the current pan and tilt positions, and a request for the next positions is sent. (This means that the pan and tilt positions are received as fast as the PTU can send them, but no faster than the robot task cycle.) If no pan and tilt positions have been received, then <a class="el" href="classArDPPTU.html" title="Driver for the DPPTU. ">ArDPPTU</a> defaults to providing as pan and tilt position whatever the last <em>requested</em> positions are (from the last use of pan(), tilt() or panTilt()). (This is the standard behavior specified by the <a class="el" href="classArPTZ.html" title="Base class which handles the PTZ cameras. ">ArPTZ</a> interface, and lets you deal with different kinds of PTUs, some of which cannot measure their own position.) You can also always check the last pan or tilt request with getLastPanRequest() and getLastTiltRequest().</p>
<p>To use <a class="el" href="classArDPPTU.html" title="Driver for the DPPTU. ">ArDPPTU</a> you must set the appropriate device connection (usually an <a class="el" href="classArSerialConnection.html" title="Utility for connecting to and communicating with devices through a serial port. ">ArSerialConnection</a>), open this connection, then call the init() method on the <a class="el" href="classArDPPTU.html" title="Driver for the DPPTU. ">ArDPPTU</a> object. Then, you can use resetCalib() to have the unit perform a self calibration routine, configure power modes, set speeds, etc.</p>
<p>The <a class="el" href="classArDPPTU.html" title="Driver for the DPPTU. ">ArDPPTU</a> constructor will switch on power to the PTU when on a Seekur or Seekur Jr. robot. The shutdown() method (and destructor) will switch off power.</p>
<p>If a specific DPPTU type was given in the constructor, then some internal conversion factors are set according to that type. If left as the PANTILT_DEFAULT type, then the conversion factors are automatically determined by querying the DPPTU device. PANTILT_DEFAULT is recommended.</p>
<p>The DPPTU performs a startup self-calibration routine when first powered on. You can recalibrate by calling resetCalib().</p>
<p>By default the DPPTU is configured to use low power when in motion, and no power on the motors when holding a position. This is OK for most cameras. However, the DPPTU has a very high payload (especially PTU47 for outdoor use) and you may want to enable higher power modes if the PTU slips when carrying heavy payloads using setMovePower() and setHoldPower().</p>
<p>The DPPTU can be connected to a computer serial port (typically COM4) or through a Pioneer microcontroller auxilliary serial port. If the DPPTU is connected to the microcontroller, make sure that the baud rate of the microcontroller-DPPTU connection is at least as fast, if not faster than the connection of the computer to the microcontroller. If it's slower then the commands sent to the DPPTU may get backed up in the AUX port buffer and cause the DPPTU to behave erratically. So, if the computer-microcontroller connection is autobauding up to 38400bps, then make sure that the microcontroller aux port is set to 38400bps, as well, and consult the DPPTU manual for directions on changing its baud rate.</p>
<dl class="section see"><dt>See also</dt><dd>the DPPTU manuals and documentation available at <a href="http://robots.mobilerobots.com">http://robots.mobilerobots.com</a>A class with the commands for the DPPTU </dd></dl>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085a54fe2ba13522f85352843b9d4b387493"></a>DELIM&#160;</td><td class="fielddoc">
<p>Space - Carriage return delimeter. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085adf1784c90754dfb7b6b538e74890a1c0"></a>INIT&#160;</td><td class="fielddoc">
<p>Init character. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085a70ae66fa8815313c850289d44ad6ecc8"></a>ACCEL&#160;</td><td class="fielddoc">
<p>Acceleration, Await position-command completion. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085a8b2f48b743358b18c68502b3df5d264e"></a>BASE&#160;</td><td class="fielddoc">
<p>Base speed. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085a6ed972e423ea5fe8a8bd60b60274d0e5"></a>CONTROL&#160;</td><td class="fielddoc">
<p>Speed control. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085a1f17d3c89943d6a0a6d019b35788bb05"></a>DISABLE&#160;</td><td class="fielddoc">
<p>Disable character, Delta, Default. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085a9f8de561f3b0b3c9b726b0a8c9a00a6e"></a>ENABLE&#160;</td><td class="fielddoc">
<p>Enable character, Echoing. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085a3ba964eb98614ecb9fed7952bd66aa10"></a>FACTORY&#160;</td><td class="fielddoc">
<p>Restore factory defaults. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085a8cc7b9150e04e27f03f75928a6461eab"></a>HALT&#160;</td><td class="fielddoc">
<p>Halt, Hold, High. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085af6acc42f6a744863a123acec5b214790"></a>IMMED&#160;</td><td class="fielddoc">
<p>Immediate position-command execution mode, Independent control mode. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085a754fcda791f0c069695b59a9bb80b1f3"></a>LIMIT&#160;</td><td class="fielddoc">
<p>Position limit character, Low. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085a4feacc23a844fd6b28ecd83d2aaeb1d4"></a>MONITOR&#160;</td><td class="fielddoc">
<p>Monitor, In-motion power mode. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085abf251f4c5c7e881ee016426affaa9f5c"></a>OFFSET&#160;</td><td class="fielddoc">
<p>Offset position, Off. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085ab607b12f038c037a54e9865b8b6256cb"></a>PAN&#160;</td><td class="fielddoc">
<p>Pan. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085ad0f8d44d3903c215be8fc5499c3aaf6b"></a>RESET&#160;</td><td class="fielddoc">
<p>Reset calibration, Restore stored defaults, Regular. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085a53d6f17cbaad36ab8aabccb8965a5d7e"></a>SPEED&#160;</td><td class="fielddoc">
<p>Speed, Slave. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085a2ab32d5f0bbc756421dab3e5b521fe88"></a>TILT&#160;</td><td class="fielddoc">
<p>Tilt. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085ac7f5a617cfc924e11308b7fd60c937f8"></a>UPPER&#160;</td><td class="fielddoc">
<p>Upper speed limit. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="afe6b1d17859dd18970f1c6625ae1c085a1969b41b4d5d804fd1daf93835bf5575"></a>VELOCITY&#160;</td><td class="fielddoc">
<p>Velocity control mode. </p>
</td></tr>
</table>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>ArDPPTU.h</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classArDPPTUCommands.html">ArDPPTUCommands</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
